From: Marco Trevisan (TreviƱo) Date: Mon, 8 Feb 2021 18:34:09 +0000 (+0100) Subject: authPrompt: Bump the user verifier timeout when wiggling the message X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~332 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ed1ace1d99de2956105ed52657f8a9946b451704;p=gnome-shell.git authPrompt: Bump the user verifier timeout when wiggling the message Wiggle may make the error message to be visible for less time so provide the auth prompt an API to increase the timeout to be used for showing a message in some cases. This could be reworked when we'll have a proper asyn wiggle function so that we could just make the user verifier to "freeze", then await for the wiggle transition to complete and eventually release the verifier. Part-of: --- diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js index 7b5d03ef4..d2c9a1659 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -432,8 +432,16 @@ var AuthPrompt = GObject.registerClass({ } if (type === GdmUtil.MessageType.ERROR && - this._userVerifier.serviceIsFingerprint(serviceName)) - Util.wiggle(this._message); + this._userVerifier.serviceIsFingerprint(serviceName)) { + // TODO: Use Await for wiggle to be over before unfreezing the user verifier queue + const wiggleParameters = { + duration: 65, + wiggleCount: 3, + }; + this._userVerifier.increaseCurrentMessageTimeout( + wiggleParameters.duration * (wiggleParameters.wiggleCount + 2)); + Util.wiggle(this._message, wiggleParameters); + } } updateSensitivity(sensitive) { diff --git a/js/gdm/util.js b/js/gdm/util.js index f6a980a2a..1666fd842 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -285,6 +285,11 @@ var ShellUserVerifier = class { this.emit('no-more-messages'); } + increaseCurrentMessageTimeout(interval) { + if (!this._messageQueueTimeoutId && interval > 0) + this._currentMessageExtraInterval = interval; + } + _queueMessageTimeout() { if (this._messageQueue.length == 0) { this.finishMessageQueue(); @@ -296,10 +301,11 @@ var ShellUserVerifier = class { let message = this._messageQueue.shift(); + delete this._currentMessageExtraInterval; this.emit('show-message', message.serviceName, message.text, message.type); this._messageQueueTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, - message.interval, + message.interval + (this._currentMessageExtraInterval | 0), () => { this._messageQueueTimeoutId = 0; this._queueMessageTimeout();